//-------------------------------------------------------------------------------------------------------
// Copyright (C) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
//-------------------------------------------------------------------------------------------------------

function write(v) { WScript.Echo(v + ""); }

function foo() {}

write(undefined & undefined);
write(undefined & null);
write(undefined & true);
write(undefined & false);
write(undefined & Boolean(true));
write(undefined & Boolean(false));
write(undefined & new Boolean(true));
write(undefined & new Boolean(false));
write(undefined & NaN);
write(undefined & +0);
write(undefined & -0);
write(undefined & 0);
write(undefined & 0.0);
write(undefined & -0.0);
write(undefined & +0.0);
write(undefined & 1);
write(undefined & 10);
write(undefined & 10.0);
write(undefined & 10.1);
write(undefined & -1);
write(undefined & -10);
write(undefined & -10.0);
write(undefined & -10.1);
write(undefined & Number.MAX_VALUE);
write(undefined & Number.MIN_VALUE);
write(undefined & Number.NaN);
write(undefined & Number.POSITIVE_INFINITY);
write(undefined & Number.NEGATIVE_INFINITY);
write(undefined & new Number(NaN));
write(undefined & new Number(+0));
write(undefined & new Number(-0));
write(undefined & new Number(0));
write(undefined & new Number(0.0));
write(undefined & new Number(-0.0));
write(undefined & new Number(+0.0));
write(undefined & new Number(1));
write(undefined & new Number(10));
write(undefined & new Number(10.0));
write(undefined & new Number(10.1));
write(undefined & new Number(-1));
write(undefined & new Number(-10));
write(undefined & new Number(-10.0));
write(undefined & new Number(-10.1));
write(undefined & new Number(Number.MAX_VALUE));
write(undefined & new Number(Number.MIN_VALUE));
write(undefined & new Number(Number.NaN));
write(undefined & new Number(Number.POSITIVE_INFINITY));
write(undefined & new Number(Number.NEGATIVE_INFINITY));
write(undefined & '');
write(undefined & 0xa);
write(undefined & 04);
write(undefined & 'hello');
write(undefined & 'hel' + 'lo');
write(undefined & String(''));
write(undefined & String('hello'));
write(undefined & String('h' + 'ello'));
write(undefined & new String(''));
write(undefined & new String('hello'));
write(undefined & new String('he' + 'llo'));
write(undefined & new Object());
write(undefined & new Object());
write(undefined & [1, 2, 3]);
write(undefined & [1 ,2 , 3]);
write(undefined & new Array(3));
write(undefined & Array(3));
write(undefined & new Array(1 ,2 ,3));
write(undefined & Array(1));
write(undefined & foo);
write(null & undefined);
write(null & null);
write(null & true);
write(null & false);
write(null & Boolean(true));
write(null & Boolean(false));
write(null & new Boolean(true));
write(null & new Boolean(false));
write(null & NaN);
write(null & +0);
write(null & -0);
write(null & 0);
write(null & 0.0);
write(null & -0.0);
write(null & +0.0);
write(null & 1);
write(null & 10);
write(null & 10.0);
write(null & 10.1);
write(null & -1);
write(null & -10);
write(null & -10.0);
write(null & -10.1);
write(null & Number.MAX_VALUE);
write(null & Number.MIN_VALUE);
write(null & Number.NaN);
write(null & Number.POSITIVE_INFINITY);
write(null & Number.NEGATIVE_INFINITY);
write(null & new Number(NaN));
write(null & new Number(+0));
write(null & new Number(-0));
write(null & new Number(0));
write(null & new Number(0.0));
write(null & new Number(-0.0));
write(null & new Number(+0.0));
write(null & new Number(1));
write(null & new Number(10));
write(null & new Number(10.0));
write(null & new Number(10.1));
write(null & new Number(-1));
write(null & new Number(-10));
write(null & new Number(-10.0));
write(null & new Number(-10.1));
write(null & new Number(Number.MAX_VALUE));
write(null & new Number(Number.MIN_VALUE));
write(null & new Number(Number.NaN));
write(null & new Number(Number.POSITIVE_INFINITY));
write(null & new Number(Number.NEGATIVE_INFINITY));
write(null & '');
write(null & 0xa);
write(null & 04);
write(null & 'hello');
write(null & 'hel' + 'lo');
write(null & String(''));
write(null & String('hello'));
write(null & String('h' + 'ello'));
write(null & new String(''));
write(null & new String('hello'));
write(null & new String('he' + 'llo'));
write(null & new Object());
write(null & new Object());
write(null & [1, 2, 3]);
write(null & [1 ,2 , 3]);
write(null & new Array(3));
write(null & Array(3));
write(null & new Array(1 ,2 ,3));
write(null & Array(1));
write(null & foo);
write(true & undefined);
write(true & null);
write(true & true);
write(true & false);
write(true & Boolean(true));
write(true & Boolean(false));
write(true & new Boolean(true));
write(true & new Boolean(false));
write(true & NaN);
write(true & +0);
write(true & -0);
write(true & 0);
write(true & 0.0);
write(true & -0.0);
write(true & +0.0);
write(true & 1);
write(true & 10);
write(true & 10.0);
write(true & 10.1);
write(true & -1);
write(true & -10);
write(true & -10.0);
write(true & -10.1);
write(true & Number.MAX_VALUE);
write(true & Number.MIN_VALUE);
write(true & Number.NaN);
write(true & Number.POSITIVE_INFINITY);
write(true & Number.NEGATIVE_INFINITY);
write(true & new Number(NaN));
write(true & new Number(+0));
write(true & new Number(-0));
write(true & new Number(0));
write(true & new Number(0.0));
write(true & new Number(-0.0));
write(true & new Number(+0.0));
write(true & new Number(1));
write(true & new Number(10));
write(true & new Number(10.0));
write(true & new Number(10.1));
write(true & new Number(-1));
write(true & new Number(-10));
write(true & new Number(-10.0));
write(true & new Number(-10.1));
write(true & new Number(Number.MAX_VALUE));
write(true & new Number(Number.MIN_VALUE));
write(true & new Number(Number.NaN));
write(true & new Number(Number.POSITIVE_INFINITY));
write(true & new Number(Number.NEGATIVE_INFINITY));
write(true & '');
write(true & 0xa);
write(true & 04);
write(true & 'hello');
write(true & 'hel' + 'lo');
write(true & String(''));
write(true & String('hello'));
write(true & String('h' + 'ello'));
write(true & new String(''));
write(true & new String('hello'));
write(true & new String('he' + 'llo'));
write(true & new Object());
write(true & new Object());
write(true & [1, 2, 3]);
write(true & [1 ,2 , 3]);
write(true & new Array(3));
write(true & Array(3));
write(true & new Array(1 ,2 ,3));
write(true & Array(1));
write(true & foo);
write(false & undefined);
write(false & null);
write(false & true);
write(false & false);
write(false & Boolean(true));
write(false & Boolean(false));
write(false & new Boolean(true));
write(false & new Boolean(false));
write(false & NaN);
write(false & +0);
write(false & -0);
write(false & 0);
write(false & 0.0);
write(false & -0.0);
write(false & +0.0);
write(false & 1);
write(false & 10);
write(false & 10.0);
write(false & 10.1);
write(false & -1);
write(false & -10);
write(false & -10.0);
write(false & -10.1);
write(false & Number.MAX_VALUE);
write(false & Number.MIN_VALUE);
write(false & Number.NaN);
write(false & Number.POSITIVE_INFINITY);
write(false & Number.NEGATIVE_INFINITY);
write(false & new Number(NaN));
write(false & new Number(+0));
write(false & new Number(-0));
write(false & new Number(0));
write(false & new Number(0.0));
write(false & new Number(-0.0));
write(false & new Number(+0.0));
write(false & new Number(1));
write(false & new Number(10));
write(false & new Number(10.0));
write(false & new Number(10.1));
write(false & new Number(-1));
write(false & new Number(-10));
write(false & new Number(-10.0));
write(false & new Number(-10.1));
write(false & new Number(Number.MAX_VALUE));
write(false & new Number(Number.MIN_VALUE));
write(false & new Number(Number.NaN));
write(false & new Number(Number.POSITIVE_INFINITY));
write(false & new Number(Number.NEGATIVE_INFINITY));
write(false & '');
write(false & 0xa);
write(false & 04);
write(false & 'hello');
write(false & 'hel' + 'lo');
write(false & String(''));
write(false & String('hello'));
write(false & String('h' + 'ello'));
write(false & new String(''));
write(false & new String('hello'));
write(false & new String('he' + 'llo'));
write(false & new Object());
write(false & new Object());
write(false & [1, 2, 3]);
write(false & [1 ,2 , 3]);
write(false & new Array(3));
write(false & Array(3));
write(false & new Array(1 ,2 ,3));
write(false & Array(1));
write(false & foo);
write(Boolean(true) & undefined);
write(Boolean(true) & null);
write(Boolean(true) & true);
write(Boolean(true) & false);
write(Boolean(true) & Boolean(true));
write(Boolean(true) & Boolean(false));
write(Boolean(true) & new Boolean(true));
write(Boolean(true) & new Boolean(false));
write(Boolean(true) & NaN);
write(Boolean(true) & +0);
write(Boolean(true) & -0);
write(Boolean(true) & 0);
write(Boolean(true) & 0.0);
write(Boolean(true) & -0.0);
write(Boolean(true) & +0.0);
write(Boolean(true) & 1);
write(Boolean(true) & 10);
write(Boolean(true) & 10.0);
write(Boolean(true) & 10.1);
write(Boolean(true) & -1);
write(Boolean(true) & -10);
write(Boolean(true) & -10.0);
write(Boolean(true) & -10.1);
write(Boolean(true) & Number.MAX_VALUE);
write(Boolean(true) & Number.MIN_VALUE);
write(Boolean(true) & Number.NaN);
write(Boolean(true) & Number.POSITIVE_INFINITY);
write(Boolean(true) & Number.NEGATIVE_INFINITY);
write(Boolean(true) & new Number(NaN));
write(Boolean(true) & new Number(+0));
write(Boolean(true) & new Number(-0));
write(Boolean(true) & new Number(0));
write(Boolean(true) & new Number(0.0));
write(Boolean(true) & new Number(-0.0));
write(Boolean(true) & new Number(+0.0));
write(Boolean(true) & new Number(1));
write(Boolean(true) & new Number(10));
write(Boolean(true) & new Number(10.0));
write(Boolean(true) & new Number(10.1));
write(Boolean(true) & new Number(-1));
write(Boolean(true) & new Number(-10));
write(Boolean(true) & new Number(-10.0));
write(Boolean(true) & new Number(-10.1));
write(Boolean(true) & new Number(Number.MAX_VALUE));
write(Boolean(true) & new Number(Number.MIN_VALUE));
write(Boolean(true) & new Number(Number.NaN));
write(Boolean(true) & new Number(Number.POSITIVE_INFINITY));
write(Boolean(true) & new Number(Number.NEGATIVE_INFINITY));
write(Boolean(true) & '');
write(Boolean(true) & 0xa);
write(Boolean(true) & 04);
write(Boolean(true) & 'hello');
write(Boolean(true) & 'hel' + 'lo');
write(Boolean(true) & String(''));
write(Boolean(true) & String('hello'));
write(Boolean(true) & String('h' + 'ello'));
write(Boolean(true) & new String(''));
write(Boolean(true) & new String('hello'));
write(Boolean(true) & new String('he' + 'llo'));
write(Boolean(true) & new Object());
write(Boolean(true) & new Object());
write(Boolean(true) & [1, 2, 3]);
write(Boolean(true) & [1 ,2 , 3]);
write(Boolean(true) & new Array(3));
write(Boolean(true) & Array(3));
write(Boolean(true) & new Array(1 ,2 ,3));
write(Boolean(true) & Array(1));
write(Boolean(true) & foo);
write(Boolean(false) & undefined);
write(Boolean(false) & null);
write(Boolean(false) & true);
write(Boolean(false) & false);
write(Boolean(false) & Boolean(true));
write(Boolean(false) & Boolean(false));
write(Boolean(false) & new Boolean(true));
write(Boolean(false) & new Boolean(false));
write(Boolean(false) & NaN);
write(Boolean(false) & +0);
write(Boolean(false) & -0);
write(Boolean(false) & 0);
write(Boolean(false) & 0.0);
write(Boolean(false) & -0.0);
write(Boolean(false) & +0.0);
write(Boolean(false) & 1);
write(Boolean(false) & 10);
write(Boolean(false) & 10.0);
write(Boolean(false) & 10.1);
write(Boolean(false) & -1);
write(Boolean(false) & -10);
write(Boolean(false) & -10.0);
write(Boolean(false) & -10.1);
write(Boolean(false) & Number.MAX_VALUE);
write(Boolean(false) & Number.MIN_VALUE);
write(Boolean(false) & Number.NaN);
write(Boolean(false) & Number.POSITIVE_INFINITY);
write(Boolean(false) & Number.NEGATIVE_INFINITY);
write(Boolean(false) & new Number(NaN));
write(Boolean(false) & new Number(+0));
write(Boolean(false) & new Number(-0));
write(Boolean(false) & new Number(0));
write(Boolean(false) & new Number(0.0));
write(Boolean(false) & new Number(-0.0));
write(Boolean(false) & new Number(+0.0));
write(Boolean(false) & new Number(1));
write(Boolean(false) & new Number(10));
write(Boolean(false) & new Number(10.0));
write(Boolean(false) & new Number(10.1));
write(Boolean(false) & new Number(-1));
write(Boolean(false) & new Number(-10));
write(Boolean(false) & new Number(-10.0));
write(Boolean(false) & new Number(-10.1));
write(Boolean(false) & new Number(Number.MAX_VALUE));
write(Boolean(false) & new Number(Number.MIN_VALUE));
write(Boolean(false) & new Number(Number.NaN));
write(Boolean(false) & new Number(Number.POSITIVE_INFINITY));
write(Boolean(false) & new Number(Number.NEGATIVE_INFINITY));
write(Boolean(false) & '');
write(Boolean(false) & 0xa);
write(Boolean(false) & 04);
write(Boolean(false) & 'hello');
write(Boolean(false) & 'hel' + 'lo');
write(Boolean(false) & String(''));
write(Boolean(false) & String('hello'));
write(Boolean(false) & String('h' + 'ello'));
write(Boolean(false) & new String(''));
write(Boolean(false) & new String('hello'));
write(Boolean(false) & new String('he' + 'llo'));
write(Boolean(false) & new Object());
write(Boolean(false) & new Object());
write(Boolean(false) & [1, 2, 3]);
write(Boolean(false) & [1 ,2 , 3]);
write(Boolean(false) & new Array(3));
write(Boolean(false) & Array(3));
write(Boolean(false) & new Array(1 ,2 ,3));
write(Boolean(false) & Array(1));
write(Boolean(false) & foo);
write(new Boolean(true) & undefined);
write(new Boolean(true) & null);
write(new Boolean(true) & true);
write(new Boolean(true) & false);
write(new Boolean(true) & Boolean(true));
write(new Boolean(true) & Boolean(false));
write(new Boolean(true) & new Boolean(true));
write(new Boolean(true) & new Boolean(false));
write(new Boolean(true) & NaN);
write(new Boolean(true) & +0);
write(new Boolean(true) & -0);
write(new Boolean(true) & 0);
write(new Boolean(true) & 0.0);
write(new Boolean(true) & -0.0);
write(new Boolean(true) & +0.0);
write(new Boolean(true) & 1);
write(new Boolean(true) & 10);
write(new Boolean(true) & 10.0);
write(new Boolean(true) & 10.1);
write(new Boolean(true) & -1);
write(new Boolean(true) & -10);
write(new Boolean(true) & -10.0);
write(new Boolean(true) & -10.1);
write(new Boolean(true) & Number.MAX_VALUE);
write(new Boolean(true) & Number.MIN_VALUE);
write(new Boolean(true) & Number.NaN);
write(new Boolean(true) & Number.POSITIVE_INFINITY);
write(new Boolean(true) & Number.NEGATIVE_INFINITY);
write(new Boolean(true) & new Number(NaN));
write(new Boolean(true) & new Number(+0));
write(new Boolean(true) & new Number(-0));
write(new Boolean(true) & new Number(0));
write(new Boolean(true) & new Number(0.0));
write(new Boolean(true) & new Number(-0.0));
write(new Boolean(true) & new Number(+0.0));
write(new Boolean(true) & new Number(1));
write(new Boolean(true) & new Number(10));
write(new Boolean(true) & new Number(10.0));
write(new Boolean(true) & new Number(10.1));
write(new Boolean(true) & new Number(-1));
write(new Boolean(true) & new Number(-10));
write(new Boolean(true) & new Number(-10.0));
write(new Boolean(true) & new Number(-10.1));
write(new Boolean(true) & new Number(Number.MAX_VALUE));
write(new Boolean(true) & new Number(Number.MIN_VALUE));
write(new Boolean(true) & new Number(Number.NaN));
write(new Boolean(true) & new Number(Number.POSITIVE_INFINITY));
write(new Boolean(true) & new Number(Number.NEGATIVE_INFINITY));
write(new Boolean(true) & '');
write(new Boolean(true) & 0xa);
write(new Boolean(true) & 04);
write(new Boolean(true) & 'hello');
write(new Boolean(true) & 'hel' + 'lo');
write(new Boolean(true) & String(''));
write(new Boolean(true) & String('hello'));
write(new Boolean(true) & String('h' + 'ello'));
write(new Boolean(true) & new String(''));
write(new Boolean(true) & new String('hello'));
write(new Boolean(true) & new String('he' + 'llo'));
write(new Boolean(true) & new Object());
write(new Boolean(true) & new Object());
write(new Boolean(true) & [1, 2, 3]);
write(new Boolean(true) & [1 ,2 , 3]);
write(new Boolean(true) & new Array(3));
write(new Boolean(true) & Array(3));
write(new Boolean(true) & new Array(1 ,2 ,3));
write(new Boolean(true) & Array(1));
write(new Boolean(true) & foo);
write(new Boolean(false) & undefined);
write(new Boolean(false) & null);
write(new Boolean(false) & true);
write(new Boolean(false) & false);
write(new Boolean(false) & Boolean(true));
write(new Boolean(false) & Boolean(false));
write(new Boolean(false) & new Boolean(true));
write(new Boolean(false) & new Boolean(false));
write(new Boolean(false) & NaN);
write(new Boolean(false) & +0);
write(new Boolean(false) & -0);
write(new Boolean(false) & 0);
write(new Boolean(false) & 0.0);
write(new Boolean(false) & -0.0);
write(new Boolean(false) & +0.0);
write(new Boolean(false) & 1);
write(new Boolean(false) & 10);
write(new Boolean(false) & 10.0);
write(new Boolean(false) & 10.1);
write(new Boolean(false) & -1);
write(new Boolean(false) & -10);
write(new Boolean(false) & -10.0);
write(new Boolean(false) & -10.1);
write(new Boolean(false) & Number.MAX_VALUE);
write(new Boolean(false) & Number.MIN_VALUE);
write(new Boolean(false) & Number.NaN);
write(new Boolean(false) & Number.POSITIVE_INFINITY);
write(new Boolean(false) & Number.NEGATIVE_INFINITY);
write(new Boolean(false) & new Number(NaN));
write(new Boolean(false) & new Number(+0));
write(new Boolean(false) & new Number(-0));
write(new Boolean(false) & new Number(0));
write(new Boolean(false) & new Number(0.0));
write(new Boolean(false) & new Number(-0.0));
write(new Boolean(false) & new Number(+0.0));
write(new Boolean(false) & new Number(1));
write(new Boolean(false) & new Number(10));
write(new Boolean(false) & new Number(10.0));
write(new Boolean(false) & new Number(10.1));
write(new Boolean(false) & new Number(-1));
write(new Boolean(false) & new Number(-10));
write(new Boolean(false) & new Number(-10.0));
write(new Boolean(false) & new Number(-10.1));
write(new Boolean(false) & new Number(Number.MAX_VALUE));
write(new Boolean(false) & new Number(Number.MIN_VALUE));
write(new Boolean(false) & new Number(Number.NaN));
write(new Boolean(false) & new Number(Number.POSITIVE_INFINITY));
write(new Boolean(false) & new Number(Number.NEGATIVE_INFINITY));
write(new Boolean(false) & '');
write(new Boolean(false) & 0xa);
write(new Boolean(false) & 04);
write(new Boolean(false) & 'hello');
write(new Boolean(false) & 'hel' + 'lo');
write(new Boolean(false) & String(''));
write(new Boolean(false) & String('hello'));
write(new Boolean(false) & String('h' + 'ello'));
write(new Boolean(false) & new String(''));
write(new Boolean(false) & new String('hello'));
write(new Boolean(false) & new String('he' + 'llo'));
write(new Boolean(false) & new Object());
write(new Boolean(false) & new Object());
write(new Boolean(false) & [1, 2, 3]);
write(new Boolean(false) & [1 ,2 , 3]);
write(new Boolean(false) & new Array(3));
write(new Boolean(false) & Array(3));
write(new Boolean(false) & new Array(1 ,2 ,3));
write(new Boolean(false) & Array(1));
write(new Boolean(false) & foo);
write(NaN & undefined);
write(NaN & null);
write(NaN & true);
write(NaN & false);
write(NaN & Boolean(true));
write(NaN & Boolean(false));
write(NaN & new Boolean(true));
write(NaN & new Boolean(false));
write(NaN & NaN);
write(NaN & +0);
write(NaN & -0);
write(NaN & 0);
write(NaN & 0.0);
write(NaN & -0.0);
write(NaN & +0.0);
write(NaN & 1);
write(NaN & 10);
write(NaN & 10.0);
write(NaN & 10.1);
write(NaN & -1);
write(NaN & -10);
write(NaN & -10.0);
write(NaN & -10.1);
write(NaN & Number.MAX_VALUE);
write(NaN & Number.MIN_VALUE);
write(NaN & Number.NaN);
write(NaN & Number.POSITIVE_INFINITY);
write(NaN & Number.NEGATIVE_INFINITY);
write(NaN & new Number(NaN));
write(NaN & new Number(+0));
write(NaN & new Number(-0));
write(NaN & new Number(0));
write(NaN & new Number(0.0));
write(NaN & new Number(-0.0));
write(NaN & new Number(+0.0));
write(NaN & new Number(1));
write(NaN & new Number(10));
write(NaN & new Number(10.0));
write(NaN & new Number(10.1));
write(NaN & new Number(-1));
write(NaN & new Number(-10));
write(NaN & new Number(-10.0));
write(NaN & new Number(-10.1));
write(NaN & new Number(Number.MAX_VALUE));
write(NaN & new Number(Number.MIN_VALUE));
write(NaN & new Number(Number.NaN));
write(NaN & new Number(Number.POSITIVE_INFINITY));
write(NaN & new Number(Number.NEGATIVE_INFINITY));
write(NaN & '');
write(NaN & 0xa);
write(NaN & 04);
write(NaN & 'hello');
write(NaN & 'hel' + 'lo');
write(NaN & String(''));
write(NaN & String('hello'));
write(NaN & String('h' + 'ello'));
write(NaN & new String(''));
write(NaN & new String('hello'));
write(NaN & new String('he' + 'llo'));
write(NaN & new Object());
write(NaN & new Object());
write(NaN & [1, 2, 3]);
write(NaN & [1 ,2 , 3]);
write(NaN & new Array(3));
write(NaN & Array(3));
write(NaN & new Array(1 ,2 ,3));
write(NaN & Array(1));
write(NaN & foo);
write(+0 & undefined);
write(+0 & null);
write(+0 & true);
write(+0 & false);
write(+0 & Boolean(true));
write(+0 & Boolean(false));
write(+0 & new Boolean(true));
write(+0 & new Boolean(false));
write(+0 & NaN);
write(+0 & +0);
write(+0 & -0);
write(+0 & 0);
write(+0 & 0.0);
write(+0 & -0.0);
write(+0 & +0.0);
write(+0 & 1);
write(+0 & 10);
write(+0 & 10.0);
write(+0 & 10.1);
write(+0 & -1);
write(+0 & -10);
write(+0 & -10.0);
write(+0 & -10.1);
write(+0 & Number.MAX_VALUE);
write(+0 & Number.MIN_VALUE);
write(+0 & Number.NaN);
write(+0 & Number.POSITIVE_INFINITY);
write(+0 & Number.NEGATIVE_INFINITY);
write(+0 & new Number(NaN));
write(+0 & new Number(+0));
write(+0 & new Number(-0));
write(+0 & new Number(0));
write(+0 & new Number(0.0));
write(+0 & new Number(-0.0));
write(+0 & new Number(+0.0));
write(+0 & new Number(1));
write(+0 & new Number(10));
write(+0 & new Number(10.0));
write(+0 & new Number(10.1));
write(+0 & new Number(-1));
write(+0 & new Number(-10));
write(+0 & new Number(-10.0));
write(+0 & new Number(-10.1));
write(+0 & new Number(Number.MAX_VALUE));
write(+0 & new Number(Number.MIN_VALUE));
write(+0 & new Number(Number.NaN));
write(+0 & new Number(Number.POSITIVE_INFINITY));
write(+0 & new Number(Number.NEGATIVE_INFINITY));
write(+0 & '');
write(+0 & 0xa);
write(+0 & 04);
write(+0 & 'hello');
write(+0 & 'hel' + 'lo');
write(+0 & String(''));
write(+0 & String('hello'));
write(+0 & String('h' + 'ello'));
write(+0 & new String(''));
write(+0 & new String('hello'));
write(+0 & new String('he' + 'llo'));
write(+0 & new Object());
write(+0 & new Object());
write(+0 & [1, 2, 3]);
write(+0 & [1 ,2 , 3]);
write(+0 & new Array(3));
write(+0 & Array(3));
write(+0 & new Array(1 ,2 ,3));
write(+0 & Array(1));
write(+0 & foo);
write(-0 & undefined);
write(-0 & null);
write(-0 & true);
write(-0 & false);
write(-0 & Boolean(true));
write(-0 & Boolean(false));
write(-0 & new Boolean(true));
write(-0 & new Boolean(false));
write(-0 & NaN);
write(-0 & +0);
write(-0 & -0);
write(-0 & 0);
write(-0 & 0.0);
write(-0 & -0.0);
write(-0 & +0.0);
write(-0 & 1);
write(-0 & 10);
write(-0 & 10.0);
write(-0 & 10.1);
write(-0 & -1);
write(-0 & -10);
write(-0 & -10.0);
write(-0 & -10.1);
write(-0 & Number.MAX_VALUE);
write(-0 & Number.MIN_VALUE);
write(-0 & Number.NaN);
write(-0 & Number.POSITIVE_INFINITY);
write(-0 & Number.NEGATIVE_INFINITY);
write(-0 & new Number(NaN));
write(-0 & new Number(+0));
write(-0 & new Number(-0));
write(-0 & new Number(0));
write(-0 & new Number(0.0));
write(-0 & new Number(-0.0));
write(-0 & new Number(+0.0));
write(-0 & new Number(1));
write(-0 & new Number(10));
write(-0 & new Number(10.0));
write(-0 & new Number(10.1));
write(-0 & new Number(-1));
write(-0 & new Number(-10));
write(-0 & new Number(-10.0));
write(-0 & new Number(-10.1));
write(-0 & new Number(Number.MAX_VALUE));
write(-0 & new Number(Number.MIN_VALUE));
write(-0 & new Number(Number.NaN));
write(-0 & new Number(Number.POSITIVE_INFINITY));
write(-0 & new Number(Number.NEGATIVE_INFINITY));
write(-0 & '');
write(-0 & 0xa);
write(-0 & 04);
write(-0 & 'hello');
write(-0 & 'hel' + 'lo');
write(-0 & String(''));
write(-0 & String('hello'));
write(-0 & String('h' + 'ello'));
write(-0 & new String(''));
write(-0 & new String('hello'));
write(-0 & new String('he' + 'llo'));
write(-0 & new Object());
write(-0 & new Object());
write(-0 & [1, 2, 3]);
write(-0 & [1 ,2 , 3]);
write(-0 & new Array(3));
write(-0 & Array(3));
write(-0 & new Array(1 ,2 ,3));
write(-0 & Array(1));
write(-0 & foo);
write(0 & undefined);
write(0 & null);
write(0 & true);
write(0 & false);
write(0 & Boolean(true));
write(0 & Boolean(false));
write(0 & new Boolean(true));
write(0 & new Boolean(false));
write(0 & NaN);
write(0 & +0);
write(0 & -0);
write(0 & 0);
write(0 & 0.0);
write(0 & -0.0);
write(0 & +0.0);
write(0 & 1);
write(0 & 10);
write(0 & 10.0);
write(0 & 10.1);
write(0 & -1);
write(0 & -10);
write(0 & -10.0);
write(0 & -10.1);
write(0 & Number.MAX_VALUE);
write(0 & Number.MIN_VALUE);
write(0 & Number.NaN);
write(0 & Number.POSITIVE_INFINITY);
write(0 & Number.NEGATIVE_INFINITY);
write(0 & new Number(NaN));
write(0 & new Number(+0));
write(0 & new Number(-0));
write(0 & new Number(0));
write(0 & new Number(0.0));
write(0 & new Number(-0.0));
write(0 & new Number(+0.0));
write(0 & new Number(1));
write(0 & new Number(10));
write(0 & new Number(10.0));
write(0 & new Number(10.1));
write(0 & new Number(-1));
write(0 & new Number(-10));
write(0 & new Number(-10.0));
write(0 & new Number(-10.1));
write(0 & new Number(Number.MAX_VALUE));
write(0 & new Number(Number.MIN_VALUE));
write(0 & new Number(Number.NaN));
write(0 & new Number(Number.POSITIVE_INFINITY));
write(0 & new Number(Number.NEGATIVE_INFINITY));
write(0 & '');
write(0 & 0xa);
write(0 & 04);
write(0 & 'hello');
write(0 & 'hel' + 'lo');
write(0 & String(''));
write(0 & String('hello'));
write(0 & String('h' + 'ello'));
write(0 & new String(''));
write(0 & new String('hello'));
write(0 & new String('he' + 'llo'));
write(0 & new Object());
write(0 & new Object());
write(0 & [1, 2, 3]);
write(0 & [1 ,2 , 3]);
write(0 & new Array(3));
write(0 & Array(3));
write(0 & new Array(1 ,2 ,3));
write(0 & Array(1));
write(0 & foo);
write(0.0 & undefined);
write(0.0 & null);
write(0.0 & true);
write(0.0 & false);
write(0.0 & Boolean(true));
write(0.0 & Boolean(false));
write(0.0 & new Boolean(true));
write(0.0 & new Boolean(false));
write(0.0 & NaN);
write(0.0 & +0);
write(0.0 & -0);
write(0.0 & 0);
write(0.0 & 0.0);
write(0.0 & -0.0);
write(0.0 & +0.0);
write(0.0 & 1);
write(0.0 & 10);
write(0.0 & 10.0);
write(0.0 & 10.1);
write(0.0 & -1);
write(0.0 & -10);
write(0.0 & -10.0);
write(0.0 & -10.1);
write(0.0 & Number.MAX_VALUE);
write(0.0 & Number.MIN_VALUE);
write(0.0 & Number.NaN);
write(0.0 & Number.POSITIVE_INFINITY);
write(0.0 & Number.NEGATIVE_INFINITY);
write(0.0 & new Number(NaN));
write(0.0 & new Number(+0));
write(0.0 & new Number(-0));
write(0.0 & new Number(0));
write(0.0 & new Number(0.0));
write(0.0 & new Number(-0.0));
write(0.0 & new Number(+0.0));
write(0.0 & new Number(1));
write(0.0 & new Number(10));
write(0.0 & new Number(10.0));
write(0.0 & new Number(10.1));
write(0.0 & new Number(-1));
write(0.0 & new Number(-10));
write(0.0 & new Number(-10.0));
write(0.0 & new Number(-10.1));
write(0.0 & new Number(Number.MAX_VALUE));
write(0.0 & new Number(Number.MIN_VALUE));
write(0.0 & new Number(Number.NaN));
write(0.0 & new Number(Number.POSITIVE_INFINITY));
write(0.0 & new Number(Number.NEGATIVE_INFINITY));
write(0.0 & '');
write(0.0 & 0xa);
write(0.0 & 04);
write(0.0 & 'hello');
write(0.0 & 'hel' + 'lo');
write(0.0 & String(''));
write(0.0 & String('hello'));
write(0.0 & String('h' + 'ello'));
write(0.0 & new String(''));
write(0.0 & new String('hello'));
write(0.0 & new String('he' + 'llo'));
write(0.0 & new Object());
write(0.0 & new Object());
write(0.0 & [1, 2, 3]);
write(0.0 & [1 ,2 , 3]);
write(0.0 & new Array(3));
write(0.0 & Array(3));
write(0.0 & new Array(1 ,2 ,3));
write(0.0 & Array(1));
write(0.0 & foo);
write(-0.0 & undefined);
write(-0.0 & null);
write(-0.0 & true);
write(-0.0 & false);
write(-0.0 & Boolean(true));
write(-0.0 & Boolean(false));
write(-0.0 & new Boolean(true));
write(-0.0 & new Boolean(false));
write(-0.0 & NaN);
write(-0.0 & +0);
write(-0.0 & -0);
write(-0.0 & 0);
write(-0.0 & 0.0);
write(-0.0 & -0.0);
write(-0.0 & +0.0);
write(-0.0 & 1);
write(-0.0 & 10);
write(-0.0 & 10.0);
write(-0.0 & 10.1);
write(-0.0 & -1);
write(-0.0 & -10);
write(-0.0 & -10.0);
write(-0.0 & -10.1);
write(-0.0 & Number.MAX_VALUE);
write(-0.0 & Number.MIN_VALUE);
write(-0.0 & Number.NaN);
write(-0.0 & Number.POSITIVE_INFINITY);
write(-0.0 & Number.NEGATIVE_INFINITY);
write(-0.0 & new Number(NaN));
write(-0.0 & new Number(+0));
write(-0.0 & new Number(-0));
write(-0.0 & new Number(0));
write(-0.0 & new Number(0.0));
write(-0.0 & new Number(-0.0));
write(-0.0 & new Number(+0.0));
write(-0.0 & new Number(1));
write(-0.0 & new Number(10));
write(-0.0 & new Number(10.0));
write(-0.0 & new Number(10.1));
write(-0.0 & new Number(-1));
write(-0.0 & new Number(-10));
write(-0.0 & new Number(-10.0));
write(-0.0 & new Number(-10.1));
write(-0.0 & new Number(Number.MAX_VALUE));
write(-0.0 & new Number(Number.MIN_VALUE));
write(-0.0 & new Number(Number.NaN));
write(-0.0 & new Number(Number.POSITIVE_INFINITY));
write(-0.0 & new Number(Number.NEGATIVE_INFINITY));
write(-0.0 & '');
write(-0.0 & 0xa);
write(-0.0 & 04);
write(-0.0 & 'hello');
write(-0.0 & 'hel' + 'lo');
write(-0.0 & String(''));
write(-0.0 & String('hello'));
write(-0.0 & String('h' + 'ello'));
write(-0.0 & new String(''));
write(-0.0 & new String('hello'));
write(-0.0 & new String('he' + 'llo'));
write(-0.0 & new Object());
write(-0.0 & new Object());
write(-0.0 & [1, 2, 3]);
write(-0.0 & [1 ,2 , 3]);
write(-0.0 & new Array(3));
write(-0.0 & Array(3));
write(-0.0 & new Array(1 ,2 ,3));
write(-0.0 & Array(1));
write(-0.0 & foo);
write(+0.0 & undefined);
write(+0.0 & null);
write(+0.0 & true);
write(+0.0 & false);
write(+0.0 & Boolean(true));
write(+0.0 & Boolean(false));
write(+0.0 & new Boolean(true));
write(+0.0 & new Boolean(false));
write(+0.0 & NaN);
write(+0.0 & +0);
write(+0.0 & -0);
write(+0.0 & 0);
write(+0.0 & 0.0);
write(+0.0 & -0.0);
write(+0.0 & +0.0);
write(+0.0 & 1);
write(+0.0 & 10);
write(+0.0 & 10.0);
write(+0.0 & 10.1);
write(+0.0 & -1);
write(+0.0 & -10);
write(+0.0 & -10.0);
write(+0.0 & -10.1);
write(+0.0 & Number.MAX_VALUE);
write(+0.0 & Number.MIN_VALUE);
write(+0.0 & Number.NaN);
write(+0.0 & Number.POSITIVE_INFINITY);
write(+0.0 & Number.NEGATIVE_INFINITY);
write(+0.0 & new Number(NaN));
write(+0.0 & new Number(+0));
write(+0.0 & new Number(-0));
write(+0.0 & new Number(0));
write(+0.0 & new Number(0.0));
write(+0.0 & new Number(-0.0));
write(+0.0 & new Number(+0.0));
write(+0.0 & new Number(1));
write(+0.0 & new Number(10));
write(+0.0 & new Number(10.0));
write(+0.0 & new Number(10.1));
write(+0.0 & new Number(-1));
write(+0.0 & new Number(-10));
write(+0.0 & new Number(-10.0));
write(+0.0 & new Number(-10.1));
write(+0.0 & new Number(Number.MAX_VALUE));
write(+0.0 & new Number(Number.MIN_VALUE));
write(+0.0 & new Number(Number.NaN));
write(+0.0 & new Number(Number.POSITIVE_INFINITY));
write(+0.0 & new Number(Number.NEGATIVE_INFINITY));
